package com.yuncheng.spcyApi.selectXzxkApi.service;


import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import com.yuncheng.spcyApi.mapper.XzXkMapper;
import com.yuncheng.spcyApi.selectXzxkApi.constant.XzXkConstant;
import com.yuncheng.spcyApi.selectXzxkApi.vo.*;
import com.yuncheng.spcyApi.utils.MapUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.io.IOException;
import java.sql.Clob;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

@Component(value = "ylqxXzxkService")
public class YlqxXzxkService {
    private static final Logger log = LoggerFactory.getLogger(YlqxXzxkService.class);

    @Resource
    @Lazy
    private XzXkMapper xzXkMapper;

    /**
     *  sqsxbm (002001004) / 第二类体外诊断试剂注册证核发
     * @param sqsxid
     * @param sqsx
     * @return
     */
    public Map delTwZdSjZczHf(String sqsxid, XzspSqsxVo sqsx){
        Map resultMap = new HashMap();

        // 企业信息
        List<XzspSqsxXdrxxVo> qyList = xzXkMapper.selectQyxxList(sqsxid);
        if (CollectionUtils.isNotEmpty(qyList)){
            resultMap.put("qyxx", qyList.get(0));
        }else {
            resultMap.put("qyxx", new JSONObject());
        }

        // 医疗器械 - 产品信息
        List<XzspYlqxcpVo> ylqxCpxx = xzXkMapper.findYlqxCpxx(sqsxid);
        if (CollectionUtils.isNotEmpty(ylqxCpxx)){
//            JSONObject cpxxObject = MapUtils.mapToObject(ylqxCpxx.get(0));
            resultMap.put("ylqxCpxx", ylqxCpxx.get(0));
        }else {
            resultMap.put("ylqxCpxx", new JSONObject());
        }

        return resultMap;
    }

    /**
     * sqsxbm (002001006) / 第二类体外诊断试剂变更注册
     */
    public Map delTwZdSjBgzc(String sqsxid){
        Map resultMap = new HashMap();

        // 变更前、变更后的 内容;
        resultMap.put("lsxx" ,this.lsxx(sqsxid));

        // 企业信息
        List<XzspSqsxXdrxxVo> qyList = xzXkMapper.selectQyxxList(sqsxid);
        if (CollectionUtils.isNotEmpty(qyList)){
            resultMap.put("qyxx", qyList.get(0));
        }else {
            resultMap.put("qyxx", new JSONObject());
        }

        // 医疗器械 - 产品信息
        List<XzspYlqxcpVo> ylqxCpxx = xzXkMapper.findYlqxCpxx(sqsxid);
        if (CollectionUtils.isNotEmpty(ylqxCpxx)){
            resultMap.put("ylqxCpxx", ylqxCpxx.get(0));
        }else {
            resultMap.put("ylqxCpxx", new JSONObject());
        }

        return resultMap;
    }

    /**
     *  sqsxbm (002001001) / 第二类医疗器械注册证核发
     * @param sqsxid
     * @param sqsx
     * @return
     */
    public Map delYlqxZczHf(String sqsxid, XzspSqsxVo sqsx){
        Map resultMap = new HashMap();

        // 企业信息
        List<XzspSqsxXdrxxVo> qyList = xzXkMapper.selectQyxxList(sqsxid);
        if (CollectionUtils.isNotEmpty(qyList)){
            resultMap.put("qyxx", qyList.get(0));
        }else {
            resultMap.put("qyxx", new JSONObject());
        }

        // 医疗器械 - 产品信息
        List<XzspYlqxcpVo> ylqxCpxx = xzXkMapper.findYlqxCpxx(sqsxid);
        if (CollectionUtils.isNotEmpty(ylqxCpxx)){
            resultMap.put("ylqxCpxx", ylqxCpxx.get(0));
        }else {
            resultMap.put("ylqxCpxx", new JSONObject());
        }

        return resultMap;
    }

    /**
     *  sqsxbm (002002001) / 医疗器械（二类、三类）生产许可证核发
     * @param sqsxid
     * @param sqsx
     * @return
     */
    public Map ylqxDeDslScxkzHf(String sqsxid, XzspSqsxVo sqsx){
        Map resultMap = new HashMap();

        // 企业信息
        List<XzspSqsxXdrxxVo> qyList = xzXkMapper.selectQyxxList(sqsxid);
        if (CollectionUtils.isNotEmpty(qyList)){
            resultMap.put("qyxx", qyList.get(0));
        }else {
            resultMap.put("qyxx", new JSONObject());
        }

        // 企业人员数量
        List<XzspRyslVo> ryslList = xzXkMapper.selectRysl(sqsxid);
        if (CollectionUtils.isNotEmpty(ryslList)){
            resultMap.put("rysl", ryslList.get(0));
        }else {
            resultMap.put("rysl", new JSONObject());
        }

        // 企业人员-主要人员
        List<QyRyVo> qyryList = xzXkMapper.selectQyRyList(sqsxid, null, true);
        resultMap.put("primaryQyryList", qyryList);

        // （旧的）企业 生产、经营、配置范围
        List<XzspJyfwVo> jdJyfwList = xzXkMapper.selectJyfw(sqsxid);
        if (jdJyfwList.size() == 0){
            // （旧的）企业 生产、经营、配置范围
            resultMap.put("jdjyfw", new JSONObject());

            // （新的）企业 生产、经营、配置范围
            resultMap.put("jyfw", new JSONObject());
        }else {
            int size = jdJyfwList.size();
            if (size>1){
                // （旧的）企业 生产、经营、配置范围
//                JSONObject jdJyfwListArr = MapUtils.mapToObject((Map<String, Object>) jdJyfwList.get(size-1));
                resultMap.put("jdjyfw", jdJyfwList.get(size-1));

                // （新的）企业 生产、经营、配置范围
//                JSONObject jyfwArray = MapUtils.mapToObject((Map<String, Object>) jdJyfwList.get(0));
                resultMap.put("jyfw", jdJyfwList.get(0));
            }else {
                // （旧的）企业 生产、经营、配置范围
//                JSONObject jdJyfwListArr = MapUtils.mapToObject((Map<String, Object>) jdJyfwList.get(0));
                resultMap.put("jdjyfw", new JSONObject());

                // （新的）企业 生产、经营、配置范围
                resultMap.put("jyfw", jdJyfwList.get(0));
            }
        }


        // 药品生产企业经营场所
        List<XzspJycsVo> jycsList = xzXkMapper.selectJycs(sqsxid);
        if (CollectionUtils.isNotEmpty(jycsList)){
            resultMap.put("jycs", jycsList.get(0));
        }else {
            resultMap.put("jycs", new JSONObject());
        }

        // 生产品种
        List<XzspXksqSxsqCpVo> cpMapList = xzXkMapper.selectCp(sqsxid);
        if (CollectionUtils.isNotEmpty(cpMapList)){
            // (旧的) 生产品种
            List<XzspXksqSxsqCpVo> jdCpList = cpMapList.stream()
                    .filter(f -> StringUtils.isNotBlank(f.getSf_jyfw_cpbs())
                            && f.getSf_jyfw_cpbs().equals("旧生产")).collect(Collectors.toList());
//            JSONArray cpMapArray = MapUtils.listMapToJson(jdCpList);
            resultMap.put("bgqScpzList", jdCpList);

            // (新的) 生产品种
            List<XzspXksqSxsqCpVo> newCpList = cpMapList.stream()
                    .filter(f -> StringUtils.isNotBlank(f.getSf_jyfw_cpbs())
                            && f.getSf_jyfw_cpbs().equals("新生产")).collect(Collectors.toList());
//            JSONArray newCpMapArray = MapUtils.listMapToJson(newCpList);
            resultMap.put("scpzList", newCpList);

        }else {
            resultMap.put("bgqScpzList", new JSONArray());
            resultMap.put("scpzList", new JSONArray());
        }


        // 企业项目资产、产品品种
        List<XzspXmzcVo> xmzcList = xzXkMapper.selectXmzc(sqsxid);
        if (CollectionUtils.isNotEmpty(xmzcList)){
            resultMap.put("xmzc", xmzcList.get(0));
        }else {
            resultMap.put("xmzc", new JSONObject());
        }

        // 医疗器械 生产其他信息
        List<XzspYlqxscqtxxVo> ylqxScQtxx = xzXkMapper.findYlqxScQtxx(sqsxid);
        if (CollectionUtils.isNotEmpty(ylqxScQtxx)){
//            JSONObject ylqxScQtxxObject = MapUtils.mapToObject(ylqxScQtxx.get(0));
            resultMap.put("ylqxScQtxx", ylqxScQtxx.get(0));
        }else {
            resultMap.put("ylqxScQtxx", new JSONObject());
        }


        return resultMap;
    }

    /**
     *  sqsxbm (002001021) / 医疗器械分类界定申请
     * @param sqsxid
     * @param sqsx
     * @return
     */
    public Map ylqxFljdSq(String sqsxid, XzspSqsxVo sqsx){
        Map resultMap = new HashMap();

        // 企业信息
        List<XzspSqsxXdrxxVo> qyList = xzXkMapper.selectQyxxList(sqsxid);
        if (CollectionUtils.isNotEmpty(qyList)){
            resultMap.put("qyxx", qyList.get(0));
        }else {
            resultMap.put("qyxx", new JSONObject());
        }

        // 医疗器械 - 分类界定 - 产品信息
        List<XzspYlqxfljdVo> ylqxFljd = xzXkMapper.findYlqxFljd(sqsxid);
        if (CollectionUtils.isNotEmpty(ylqxFljd)){
//            JSONObject ylqxFljdObject = MapUtils.mapToObject(ylqxFljd.get(0));
            resultMap.put("fljd", ylqxFljd.get(0));
        }else {
            resultMap.put("fljd", new JSONObject());
        }

        return resultMap;
    }

    /**
     *  sqsxbm (002001002) / 第二类医疗器械变更注册
     */
    public Map delYlqxBgZc(String sqsxid, XzspSqsxVo sqsx){
        Map resultMap = new HashMap();

        // 变更前、变更后的 内容;
        resultMap.put("lsxx" ,this.lsxx(sqsxid));

        // 企业信息
        List<XzspSqsxXdrxxVo> qyList = xzXkMapper.selectQyxxList(sqsxid);
        if (CollectionUtils.isNotEmpty(qyList)){
            resultMap.put("qyxx", qyList.get(0));
        }else {
            resultMap.put("qyxx", new JSONObject());
        }

        // 变更前核准信息
//        resultMap.put("bgqHzxx", new JSONObject());

        // 变更后核准信息
//        resultMap.put("bghHzxx", new JSONObject());

        // 医疗器械 - 产品信息
        List<XzspYlqxcpVo> ylqxCpxx = xzXkMapper.findYlqxCpxx(sqsxid);
        if (CollectionUtils.isNotEmpty(ylqxCpxx)){
            resultMap.put("ylqxCpxx", ylqxCpxx.get(0));
        }else {
            resultMap.put("ylqxCpxx", new JSONObject());
        }


        return resultMap;
    }

    /**
     * sqsxbm (002001003) / 第二类医疗器械延续注册
     */
    public Map delYlqxYxZc(String sqsxid, XzspSqsxVo sqsx){
        Map resultMap = new HashMap();

        // 变更前、变更后的 内容;
        resultMap.put("lsxx" ,this.lsxx(sqsxid));

        // 企业信息
        List<XzspSqsxXdrxxVo> qyList = xzXkMapper.selectQyxxList(sqsxid);
        if (CollectionUtils.isNotEmpty(qyList)){
            resultMap.put("qyxx", qyList.get(0));
        }else {
            resultMap.put("qyxx", new JSONObject());
        }

        // 变更前核准信息
//        resultMap.put("bgqHzxx", new JSONObject());

        // 变更后核准信息
//        resultMap.put("bghHzxx", new JSONObject());

        // 医疗器械 - 产品信息
        List<XzspYlqxcpVo> ylqxCpxx = xzXkMapper.findYlqxCpxx(sqsxid);
        if (CollectionUtils.isNotEmpty(ylqxCpxx)){
            resultMap.put("ylqxCpxx", ylqxCpxx.get(0));
        }else {
            resultMap.put("ylqxCpxx", new JSONObject());
        }

        return resultMap;
    }

    /**
     * sqsxbm (002002002) / 医疗器械（二类、三类）生产许可变更
     */
    public Map ylqxDeDslScxkBg(String sqsxid, XzspSqsxVo sqsx){
        Map resultMap = new HashMap();

        // 变更前、变更后的 内容;
        resultMap.put("lsxx" ,this.lsxx(sqsxid));

        // 企业信息
        List<XzspSqsxXdrxxVo> qyList = xzXkMapper.selectQyxxList(sqsxid);
        if (CollectionUtils.isNotEmpty(qyList)){
            resultMap.put("qyxx", qyList.get(0));
        }else {
            resultMap.put("qyxx", new JSONObject());
        }

        // 医疗器械 生产其他信息
        List<XzspYlqxscqtxxVo> ylqxScQtxx = xzXkMapper.findYlqxScQtxx(sqsxid);
        if (CollectionUtils.isNotEmpty(ylqxScQtxx)){
            resultMap.put("ylqxScQtxx", ylqxScQtxx.get(0));
        }else {
            resultMap.put("ylqxScQtxx", new JSONObject());
        }

        // 变更前核准信息
//        resultMap.put("bgqHzxx", new JSONObject());

        // 变更后核准信息
//        resultMap.put("bghHzxx", new JSONObject());

        // (变更前) 企业人员-主要人员
//        resultMap.put("bgqPrimaryQyryList", new JSONArray());

        // （变更后）企业人员-主要人员
        /*List<QyRyVo> qyryList = xzXkMapper.selectQyRyList(sqsxid, null, true);
        resultMap.put("primaryQyryList", qyryList);*/

        // (旧的) 生产品种
       /* List<Map<String, Object>> cpMapList = xzXkMapper.selectCp(sqsxid);
        JSONArray cpMapArray = MapUtils.listMapToJson(cpMapList);*/
//        resultMap.put("bgqScpzList", new JSONArray());

        // (新的) 生产品种
        /*List<Map<String, Object>> cpMapList = xzXkMapper.selectCp(sqsxid);
        JSONArray cpMapArray = MapUtils.listMapToJson(cpMapList);
        resultMap.put("scpzList", cpMapArray);*/

        return resultMap;
    }

    /**
     * sqsxbm (002002003) / 医疗器械（二类、三类）生产许可延续
     */
    public Map ylqxDeDslScxkys(String sqsxid, XzspSqsxVo sqsx){
        Map resultMap = new HashMap();

        // 变更前、变更后的 内容;
        resultMap.put("lsxx" ,this.lsxx(sqsxid));

        // 企业信息
        List<XzspSqsxXdrxxVo> qyList = xzXkMapper.selectQyxxList(sqsxid);
        if (CollectionUtils.isNotEmpty(qyList)){
            resultMap.put("qyxx", qyList.get(0));
        }else {
            resultMap.put("qyxx", new JSONObject());
        }

        // 医疗器械 生产其他信息
        List<XzspYlqxscqtxxVo> ylqxScQtxx = xzXkMapper.findYlqxScQtxx(sqsxid);
        if (CollectionUtils.isNotEmpty(ylqxScQtxx)){
            resultMap.put("ylqxScQtxx", ylqxScQtxx.get(0));
        }else {
            resultMap.put("ylqxScQtxx", new JSONObject());
        }

        // 变更前核准信息
//        resultMap.put("bgqHzxx", new JSONObject());

        // 变更后核准信息
//        resultMap.put("bghHzxx", new JSONObject());

        // (变更前) 企业人员-主要人员
//        resultMap.put("bgqPrimaryQyryList", new JSONArray());

        // （变更后）企业人员-主要人员
        /*List<QyRyVo> qyryList = xzXkMapper.selectQyRyList(sqsxid, null, true);
        resultMap.put("primaryQyryList", qyryList);*/

        // (旧的) 生产品种
       /* List<Map<String, Object>> cpMapList = xzXkMapper.selectCp(sqsxid);
        JSONArray cpMapArray = MapUtils.listMapToJson(cpMapList);*/
//        resultMap.put("bgqScpzList", new JSONArray());

        // (新的) 生产品种
        /*List<Map<String, Object>> cpMapList = xzXkMapper.selectCp(sqsxid);
        JSONArray cpMapArray = MapUtils.listMapToJson(cpMapList);
        resultMap.put("scpzList", cpMapArray);*/

        return resultMap;
    }

    /**
     * sqsxbm (002001005) / 第二类体外诊断试剂延续注册 (待确认)
     */
    public Map delTwzdsjYxzc(String sqsxid){
        Map resultMap = new HashMap();

        // 变更前、变更后的 内容;
        resultMap.put("lsxx" ,this.lsxx(sqsxid));

        return resultMap;
    }

    /**
     * sqsxbm (002001020) / 创新医疗器械特别审批初审 (待确认)
     */
    public Map cxYlqxTbspCs(String sqsxid){
        Map resultMap = new HashMap();

        // 企业信息
        List<XzspSqsxXdrxxVo> qyList = xzXkMapper.selectQyxxList(sqsxid);
        if (CollectionUtils.isNotEmpty(qyList)){
            resultMap.put("qyxx", qyList.get(0));
        }else {
            resultMap.put("qyxx", new JSONObject());
        }

        // 创新医疗器械特别审批申请
        List<XzspCxylqxtbspVo> cxYlqxTbspList = xzXkMapper.findCxYlqxTbsp(sqsxid);
        if (CollectionUtils.isNotEmpty(cxYlqxTbspList)){
            resultMap.put("cxYlqx", cxYlqxTbspList.get(0));
        }else {
            resultMap.put("cxYlqx", new JSONObject());
        }

        return resultMap;
    }

    /**
     * sqsxbm (002003001) / 医疗器械（第三类）经营许可证核发 (待确认)
     */
    public Map yqlxDslJyxkzHf(String sqsxid){
        Map resultMap = new HashMap();

        // 人员数量
        List<XzspRyslVo> ryslList = xzXkMapper.selectRysl(sqsxid);
        if (CollectionUtils.isNotEmpty(ryslList)){
            resultMap.put("rysl", ryslList.get(0));
        }else {
            resultMap.put("rysl", new JSONObject());
        }

        // 企业信息
        List<XzspSqsxXdrxxVo> qyList = xzXkMapper.selectQyxxList(sqsxid);

        if (CollectionUtils.isNotEmpty(qyList)){
            resultMap.put("qyxx", qyList.get(0));
        }else {
            resultMap.put("qyxx", new JSONObject());
        }

        // 企业人员-主要人员 / 其他人员
        resultMap.putAll(this.qyryListMap(sqsxid));

        // 仓库信息
        List<XzspCkVo> ckList = xzXkMapper.ypltSelectCkxx(sqsxid);
//        JSONArray ckListArr = MapUtils.listMapToJson(ckList);
        resultMap.put("ckList", ckList);

        // 设备
        List<XzspSbVo> sbqkList = xzXkMapper.ypltSelectSbQk(sqsxid);
        resultMap.put("sbList", sbqkList);

        // 经营范围
        List<XzspJyfwVo> jyfwList = xzXkMapper.selectJyfw(sqsxid);
        if (CollectionUtils.isNotEmpty(jyfwList)){
            resultMap.put("jyfw", jyfwList.get(0));
        }else {
            resultMap.put("jyfw", new JSONObject());
        }

        // 经营场所
        List<XzspJycsVo> jycsList = xzXkMapper.selectJycs(sqsxid);
        if (CollectionUtils.isNotEmpty(jycsList)){
            resultMap.put("jycs", jycsList.get(0));
        }else {
            resultMap.put("jycs", new JSONObject());
        }

        return resultMap;
    }

    /**
     * sqsxbm (002003002) / 医疗器械（第三类）经营许可证延续 (待确认)
     */
    public Map yqlxDslJyxkzYx(String sqsxid){
        Map resultMap = new HashMap();

        // 人员数量
        List<XzspRyslVo> ryslList = xzXkMapper.selectRysl(sqsxid);
        if (CollectionUtils.isNotEmpty(ryslList)){
            resultMap.put("rysl", ryslList.get(0));
        }else {
            resultMap.put("rysl", new JSONObject());
        }

        // 企业信息
        List<XzspSqsxXdrxxVo> qyList = xzXkMapper.selectQyxxList(sqsxid);

        if (CollectionUtils.isNotEmpty(qyList)){
            resultMap.put("qyxx", qyList.get(0));
        }else {
            resultMap.put("qyxx", new JSONObject());
        }

        // 经营范围
        List<XzspJyfwVo> jyfwList = xzXkMapper.selectJyfw(sqsxid);
        if (CollectionUtils.isNotEmpty(jyfwList)){
            resultMap.put("jyfw", jyfwList.get(0));
        }else {
            resultMap.put("jyfw", new JSONObject());
        }

        // 经营场所
        List<XzspJycsVo> jycsList = xzXkMapper.selectJycs(sqsxid);
        if (CollectionUtils.isNotEmpty(jycsList)){
            resultMap.put("jycs", jycsList.get(0));
        }else {
            resultMap.put("jycs", new JSONObject());
        }

        // 设备
        List<XzspSbVo> sbqkList = xzXkMapper.ypltSelectSbQk(sqsxid);
        resultMap.put("sbList", sbqkList);

        // 企业其他人员
        List<QyRyVo> qtQyryList = xzXkMapper.selectQyRyList(sqsxid, XzXkConstant.Fzrlx_Type_00, false);
        resultMap.put("qtQyryList", qtQyryList);

        // 变更前、变更后的 内容;
        resultMap.put("lsxx" ,this.lsxx(sqsxid));

        return resultMap;
    }

    /**
     * sqsxbm (002003003) / 医疗器械（第三类）经营许可证许可事项变更审批 (待确认)
     */
    public Map yqlxDslJyXkzXksxBgsp(String sqsxid){
        Map resultMap = new HashMap();

        // 人员数量
        List<XzspRyslVo> ryslList = xzXkMapper.selectRysl(sqsxid);
        if (CollectionUtils.isNotEmpty(ryslList)){
            resultMap.put("rysl", ryslList.get(0));
        }else {
            resultMap.put("rysl", new JSONObject());
        }

        // 企业信息
        List<XzspSqsxXdrxxVo> qyList = xzXkMapper.selectQyxxList(sqsxid);

        if (CollectionUtils.isNotEmpty(qyList)){
            resultMap.put("qyxx", qyList.get(0));
        }else {
            resultMap.put("qyxx", new JSONObject());
        }

        // 经营范围
        List<XzspJyfwVo> jyfwList = xzXkMapper.selectJyfw(sqsxid);
        if (CollectionUtils.isNotEmpty(jyfwList)){
            resultMap.put("jyfw", jyfwList.get(0));
        }else {
            resultMap.put("jyfw", new JSONObject());
        }

        // 经营场所
        List<XzspJycsVo> jycsList = xzXkMapper.selectJycs(sqsxid);
        if (CollectionUtils.isNotEmpty(jycsList)){
            resultMap.put("jycs", jycsList.get(0));
        }else {
            resultMap.put("jycs", new JSONObject());
        }

        // 设备
        List<XzspSbVo> sbqkList = xzXkMapper.ypltSelectSbQk(sqsxid);
        resultMap.put("sbList", sbqkList);

        // 企业其他人员
        List<QyRyVo> qtQyryList = xzXkMapper.selectQyRyList(sqsxid, XzXkConstant.Fzrlx_Type_00, false);
        resultMap.put("qtQyryList", qtQyryList);

        // 变更前、变更后的 内容;
        resultMap.put("lsxx" ,this.lsxx(sqsxid));

        return resultMap;
    }

    /**
     * sqsxbm (002003009) / 医疗器械（二类）经营企业设立备案 (待确认)
     */
    public Map ylqxDelJyqyslBa(String sqsxid){
        Map resultMap = new HashMap();

        // 人员数量
        List<XzspRyslVo> ryslList = xzXkMapper.selectRysl(sqsxid);
        if (CollectionUtils.isNotEmpty(ryslList)){
            resultMap.put("rysl", ryslList.get(0));
        }else {
            resultMap.put("rysl", new JSONObject());
        }

        // 企业信息
        List<XzspSqsxXdrxxVo> qyList = xzXkMapper.selectQyxxList(sqsxid);

        if (CollectionUtils.isNotEmpty(qyList)){
            resultMap.put("qyxx", qyList.get(0));
        }else {
            resultMap.put("qyxx", new JSONObject());
        }

        // 企业人员-主要人员 / 其他人员
        resultMap.putAll(this.qyryListMap(sqsxid));

        // 仓库信息
        List<XzspCkVo> ckList = xzXkMapper.ypltSelectCkxx(sqsxid);
//        JSONArray ckListArr = MapUtils.listMapToJson(ckList);
        resultMap.put("ckList", ckList);

        // 设备
        List<XzspSbVo> sbqkList = xzXkMapper.ypltSelectSbQk(sqsxid);
        resultMap.put("sbList", sbqkList);

        // 经营范围
        List<XzspJyfwVo> jyfwList = xzXkMapper.selectJyfw(sqsxid);
        if (CollectionUtils.isNotEmpty(jyfwList)){
            resultMap.put("jyfw", jyfwList.get(0));
        }else {
            resultMap.put("jyfw", new JSONObject());
        }

        // 经营场所
        List<XzspJycsVo> jycsList = xzXkMapper.selectJycs(sqsxid);
        if (CollectionUtils.isNotEmpty(jycsList)){
            resultMap.put("jycs", jycsList.get(0));
        }else {
            resultMap.put("jycs", new JSONObject());
        }

        return resultMap;
    }

    /**
     * 企业人员-主要人员 / 其他人员
     */
    public Map qyryListMap(String sqsxid){
        Map resultMap = new HashMap();

        // 企业人员-主要人员
        List<QyRyVo> qyryList = xzXkMapper.selectQyRyList(sqsxid, null, true);
        resultMap.put("primaryQyryList", qyryList);

        // 企业其他人员
        List<QyRyVo> qtQyryList = xzXkMapper.selectQyRyList(sqsxid, XzXkConstant.Fzrlx_Type_00, false);
        resultMap.put("qtQyryList", qtQyryList);

        return resultMap;
    }

    /**
     * 查询 - 历史表 - 历史记录 - 返回 -变更前，变更后的信息
     */
    public JSONObject lsxx(String sqsxid){
        String ccdx = "";
        Map<String, Object> lsbMap = xzXkMapper.searchLsb(sqsxid);
        if (lsbMap != null){
            Map<String, Object> lsxxMap = xzXkMapper.searchLsjl(lsbMap.get("ID").toString());
            if (lsxxMap != null){
                try {
                    ccdx =  MapUtils.ClobToString((Clob)lsxxMap.get("CCDX"));
                } catch (SQLException e) {
                    log.error("SQLException[]: {}", e.getMessage());
                } catch (IOException e) {
                    log.error("SQLException[]: {}", e.getMessage());
                }
            }
        }

        if (StringUtils.isNotBlank(ccdx)){
            JSONObject jsonObject = JSONObject.parseObject(ccdx);
            return jsonObject;
        }else {
            return new JSONObject();
        }
    }
}
